<?php
    class ImagenesController extends AppController{
    	var $uses = array('Imagene','Propiedade');		
		
		function add($propId){
			$absPath = $_SERVER['DOCUMENT_ROOT']."/inmobiliaria/";		
			
			//armamos las variables que la vista va a usar...
			$prop = $this->Propiedade->find('first',array(
							'conditions' => array(
								'Propiedade.id' => $propId)
							)
						);
			$this->set("propDir",$prop['Propiedade']['direccion']);	
			$this->set("propId",$propId);	
				
			if ($this->request->is('post')) {
				//primero hacemos chequeos varios: archivo subido, imagen valida (jpeg,png) etc.				
				$uploaded = $this->isUploadedFile($this->request->data['Document']);
				if($uploaded){//está subida
							
					$tiposPermitidos = array(IMAGETYPE_PNG,IMAGETYPE_JPEG,IMAGETYPE_GIF);				
					$detectado = exif_imagetype($this->request->data['Document']['submittedFile']['tmp_name']);
					if(in_array($detectado,$tiposPermitidos)){//si es una imagen aceptable...
						//...armamos el path y guardamos la imagen en inmobiliaria/img
						//sobreescribiendo si ya existe.
						$path = "img/".$this->request->data['Document']['submittedFile']['name'];
						move_uploaded_file($this->request->data['Document']['submittedFile']['tmp_name'],
						$absPath.$path);
						
						$this->request->data['Imagene']['path'] = $path;
						unset($this->request->data['Document']);						
						//guardamos la data en la base
						if ($this->Imagene->save($this->request->data)) {
							
							$this->Session->setFlash('Imagen añadida correctamente','success');
							$this->redirect(array('controller'=>'Propiedades','action' => 'editImg',$propId));					
						}						
						
					}
					else{
						$this->Session->setFlash('Tipo de imagen invalido! (Debe ser GIF, JPEG o PNG)');	
					}				
				}
				else{
					$this->Session->setFlash('...No subiste ninguna imagen.');					
				}				
			}			
		}
		function delete($id,$propId) {
			$absPath = $_SERVER['DOCUMENT_ROOT']."/inmobiliaria/";
			
			if (!$this->request->is('post')) {
				throw new MethodNotAllowedException();
			}
			$img = $this->Imagene->find('first',array(
				'conditions'=>array(
					'id'=>$id)
				));
			$path = $img['Imagene']['path'];	
			if ($this->Imagene->delete($id)) {
				unlink($absPath.$path);				
				$this->Session->setFlash('Imagen eliminada','success');
				$this->redirect(array('controller'=>'Propiedades','action' => 'editImg',$propId));
			}
		}
		function isUploadedFile($params){						
		    $val = array_shift($params);			
		    if ((isset($val['error']) && $val['error'] == 0) ||
		    (!empty( $val['tmp_name']) && $val['tmp_name'] != 'none')) {
		        return is_uploaded_file($val['tmp_name']);
		    }
		    return false;
		}
    }
?>